SHIELD Gate 로그 정의서
개요
본 문서는 SHIELD Gate의 로그 구조를 정의하여 Splunk 등 외부 로그 분석 시스템에서 로그를 수집하고 분석할 수 있도록 가이드합니다.
※ 최종 업데이트 : 25-11-14
로그 샘플
다음은 모든 주요 필드에 값이 포함된 단일 로그 샘플입니다.
{
"traceId": "SHIELDGate-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"time": 1763012869412,
"ip": "10.10.10.0",
"userId": "user@example.com",
"logLevel": "INFO",
"logType": "ADMIN",
"action": "ALLOW",
"brandName": "SHIELDGate",
"serviceName": "SHIELDGate",
"tenantId": "AAAA-BBBB-CCCC-DDDD-EEEE",
"target": "https://example.com/file.pdf",
"event": "FILE_DOWNLOAD",
"description": "File download completed",
"detail": "{\"from\":{\"name\":\"정책명1\"},\"to\":{\"name\":\"정책명2\"}}",
"user": {
"id": "user@example.com",
"name": "홍길동",
"depart": "개발팀/백엔드팀"
},
"corp": {
"id": "AAAA-BBBB-CCCC-DDDD-EEEE",
"name": "EXAMPLE COMPANY"
},
"file": {
"name": "example.pdf",
"ext": "pdf",
"path": "/documents/example.pdf",
"storageName": "SharePoint Storage"
},
"policy": {
"id": "policy-xxxxx",
"name": "파일 다운로드 정책",
"type": "STORAGE",
"rule": "{\"access\":\"allow\",\"conditions\":{}}"
},
"workSystem": {
"id": "pppppppp-qqqq-rrrr-ssss-tttttttttttt",
"type": "app",
"name": "그룹웨어 시스템",
"desc": "회사 내부 문서 및 일정 관리 시스템",
"url": "https://groupware.company.co.kr/main",
"prevUrl": "https://portal.company.co.kr",
"isIap": false,
"domain": "groupware.company.co.kr",
"category": "business",
"isAllow": true
},
"sensitive": {
"isAllow": true,
"inputData": "user input data",
"regexes": "\\d{3}-\\d{4}-\\d{4}"
},
"err": {
"type": "NETWORK_ERROR",
"desc": "서버와의 통신 중 문제가 발생하였습니다."
},
"rbi": {
"url": "https://rbi.example.com/12345"
}
}
공통 필드
모든 로그에 공통적으로 포함되는 기본 필드입니다.
| 필드명 | 타입 | 설명 | 입력값 예시 |
|---|---|---|---|
traceId | string | 서비스 간 흐름을 추적하기 위한 ID | SHIELDGate-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
time | timestamp | 로그 생성 시간 (millisecond, epoch_millis) | 1763012869412 |
ip | string | 로그 생성 IP 주소 | 10.42.13.0 |
userId | string | 이벤트 행위자의 사용자 ID | user@example.com |
logLevel | string | 로그 레벨 (에러가 발생한 이벤트는 logLevel : ERROR) | ERROR, WARN, INFO, DEBUG, TRACE |
logType | string | 로그 타입 분류 (관리자 로그/사용자 로그) | 관리자 로그 : ADMIN 사용자 로그 : USER |
action | string | 사용자 행위의 차단 여부를 분류하는 필드 | DENY: 정책이나 보안 규칙에 의해 행위가 차단됨 (예: URL 접근 차단, 파일 실행 차단)ALLOW: 정책이나 보안 규칙에 의해 행위가 허용됨 (예: URL 접근 허용, 파일 실행 허용)빈 값(""): 조건부 정책과 무관한 이벤트 |
brandName | string | 이벤트가 발생한 서비스 이름 | SHIELD Gate : SHIELDGate Security365 관리센터 : Security365 Portal |
tenantId | string | 인증인가에 등록된 고객사 ID | AAAA-BBBB-CCCC-DDDD-EEEE |
target | string | 이벤트의 대상이 되는 파일명, 사용자, URL 등 연관 정보 | https://example.com/file.pdf, example.pdf |
event | string | 이벤트 코드 문자열 (허용문자: 대문자, _) | SHIELD Gate 이벤트 코드 목록 참조 |
description | string | 이벤트 상세 설명 (표현용 문자열) | File download completed |
detail | string | 정책이나 설정 변경 시 변경 전후 값을 저장하는 필드 (JSON 문자열 형태)from: 변경 전 값to: 변경 후 값 | {"from":{"name":"정책명1"},"to":{"name":"정책명2"}} |
사용자 객체 (user)
로그 이벤트의 행위자 정보를 담는 객체입니다.
| 필드명 | 타입 | 설명 | 입력값 예시 |
|---|---|---|---|
user.id | string | 사용자 아이디 | user@example.com |
user.name | string | 사용자 이름 | 홍길동 |
user.depart | string | 사용자 부서 | 개발팀/백엔드팀 |
고객사 객체 (corp)
로그 이벤트가 발생한 고객사의 정보를 담는 객체입니다.
| 필드명 | 타입 | 설명 | 입력값 예시 |
|---|---|---|---|
corp.id | string | 회사 ID | AAAA-BBBB-CCCC-DDDD-EEEE |
corp.name | string | 고객사명 | EXAMPLE COMPANY |
파일 객체 (file)
파일 업로드, 다운로드 등 파일과 관련한 이벤트가 발생했을 때 기록하는 객체입니다.
| 필드명 | 타입 | 설명 | 입력값 예시 |
|---|---|---|---|
file.name | string | 파일 이름 | example.pdf |
file.ext | string | 파일 확장자 | pdf, docx, xlsx |
file.path | string | 파일 경로 | https://dl.google.com/documents/example.pdf |
file.storageName | string | 파일이 저장된 스토리지 이름 | SharePoint Storage |
정책 객체 (policy)
로그 이벤트와 관련된 조건부 정책 정보를 담는 객체입니다.
| 필드명 | 타입 | 설명 | 입력값 예시 |
|---|---|---|---|
policy.id | string | 정책 ID | policy-xxxxx |
policy.name | string | 정책 명 | 파일 다운로드 정책 |
policy.type | string | 정책 유형 | MENU : 업무 시스템 제어 정책 WORK_SYSTEM_APP / WORK_SYSTEM_SITE : 앱 / URL 입력창 정책 REGEX_SCRIPT : 입력 민감정보 관리 정책 PERSONAL_REMOTE_DESKTOP : 개인 데스크톱 정책 REMOTE_CONSOLE : 원격 콘솔 정책 |
policy.rule | string | 정책 상세 값을 저장하는 필드 (JSON 문자열 형태) | {"access":"allow","conditions":{}} |
업무시스템 객체 (workSystem)
로그 이벤트가 발생한 업무 시스템(앱, URL 입력창)의 정보를 담는 객체입니다.
| 필드명 | 타입 | 설명 | 입력값 예시 |
|---|---|---|---|
workSystem.id | string | 업무시스템 ID | pppppppp-qqqq-rrrr-ssss-tttttttttttt |
workSystem.type | string | 업무시스템 타입 | app : 앱 , site : URL 입력창 |
workSystem.name | string | 업무시스템 이름 | |